home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
050
/
madtrb4.arc
/
EXTENDIO.DAT
< prev
next >
Wrap
Text File
|
1984-12-17
|
3KB
|
63 lines
{@@@@@@@@@@@@@@@@@ copyright 1984 by Neil J. Rubenking @@@@@@@@@@@@@@@@@@@@@
Standard TURBO procedures for input/output do not support subdirectories.
These file handling procedures are based on the DOS 2.0 "file handle" access
concept. They are named after their standard TURBO equivalents, but with
an X in front. Note that these files are not "typed"--they are just files
of bytes. The "SIZE" parameter determines how many bytes are read at once.
NOTE that any program that INCLUDEs these Extended I/O routines MUST
also include the type definitions in REGPACK.TYP and FILENAME.TYP,
and ERRMESSG.LIB, to interpret any error messages.
Xreset(VAR FileName : filename_type; VAR handle : integer; VAR error : byte);
NOTE: for a simple reset of an already-open file, use XSeek.
Xrewrite(VAR FileName : filename_type; VAR handle : integer; VAR error:byte);
INPUT : a filename, including full path.
EFFECT : XRESET opens an already-existing file
XREWRITE opens a new file, or writes over an existing file
OUTPUT : an integer FILE HANDLE or a byte ERROR.
Xclose(handle : integer ; VAR error : byte);
INPUT : integer FILE HANDLE
EFFECT : flushes buffers and closes the file
OUTPUT : error #6 if handle is wrong
Xread(handle,size : integer ; VAR buffer ; VAR error : byte);
Xwrite(handle,size : integer ; VAR buffer ; VAR error : byte);
INPUT : integer FILE HANDLE
integer SIZE of buffer variable. You can pass this using TURBO's
builtin SIZEOF(x) function, where x is a variable OR a TYPE.
EFFECT : reads into or writes from the buffer.
OUTPUT : byte error message
Xerase(VAR filename : filename_type ; VAR error : byte);
INPUT : filename, including drive and full path
EFFECT : erases the named filename
OUTPUT : byte error message
Xseek(handle, offset,size : integer ; starting_at : char;
VAR position : integer ; VAR error : byte);
INPUT : integer FILE HANDLE
integer OFFSET--how far to seek forward, in # of records
integer SIZE of each record
character STARTING_AT: [B]eginning, [E]nd, or [C]urrent position
EFFECT : moves the file pointer to a position OFFSET*SIZE bytes after
the position defined by STARTING_AT.
OUTPUT : integer POSITION--position of file pointer in # of records after
the move.
byte ERROR message.
NOTES : OFFSET and POSITION both have the potential to be 32-bit
quantities, but since TURBO doesn't handle even true 16-bit
quantities easily, I didn't implement this possibility. It is
probably safe to assume that if you want BIG access to BIG files,
your record size will be such that you won't have more than
32,767 records.
To APPEND to a file, XSEEK Starting_At the [E]nd for an OFFSET
of 1, SIZE of 1. You'll need a dummy variable for the returned
POSITION.}
{@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@}